package com.qxzn.app.page.interfaces;

import android.view.View;

import com.qxzn.app.bean.AlbumPictureBean;
import com.qxzn.app.bean.BaseBean;
import com.qxzn.app.bean.ContactBean;
import com.qxzn.app.bean.FaceDetectionBean;
import com.qxzn.app.bean.LatestVersionBean;
import com.qxzn.app.bean.RobotDeviceListBean;
import com.qxzn.app.bean.TuyaTokenBean;
import com.qxzn.app.bean.TuyaUidBean;
import com.qxzn.app.bean.UserRemindBean;

import java.util.List;

import okhttp3.ResponseBody;

public class MyInterface {

    public interface BaseListener<T> {
        void onSuccess(BaseBean<T> baseBean);

        void onFailure();
    }

    public interface AllPermissionGrantListener {
        void onAllPermissionGrant();
    }

    public interface AlbumPictureClickListener {
        void onAlbumPictureClickSuccess(View currentView, int itemPosition, int subItemPosition);
    }

    /*------------------------------------------------home module------------------------------------------*/
    public interface GetContactListener {
        void onGetContactsSuccess(BaseBean<List<ContactBean>> baseBean);

        void onGetContactsFailure();
    }

    public interface GetUserRemindListListener {
        void onGetUserRemindListSuccess(BaseBean<List<UserRemindBean>> baseBean);

        void onGetUserRemindListFailure();
    }

    public interface AddRemindListener {
        void onAddRemindSuccess(BaseBean baseBean);

        void onAddRemindFailure();
    }

    public interface UpdateRemindListener {
        void onUpdateRemindSuccess(BaseBean baseBean);

        void onUpdateRemindFailure();
    }

    public interface DelRemindListener {
        void onDelRemindSuccess(BaseBean baseBean);

        void onDelRemindFailure();
    }

    public interface GetAlbumListListener {
        void onGetAlbumListSuccess(BaseBean<List<AlbumPictureBean>> baseBean);

        void onGetAlbumListFailure();
    }

    public interface DelAlbumPictureListener {
        void onDelAlbumPictureSuccess(BaseBean baseBean);

        void onDelAlbumPictureFailure();
    }
    /*------------------------------------------------home module------------------------------------------*/


    /*------------------------------------------------smarthome module------------------------------------------*/
    public interface GetTuyaUidListener {
        void onGetTuyaUidSuccess(BaseBean<TuyaUidBean> baseBean);

        void onGetTuyaUidFailure();
    }

    public interface GetTuyaTokenListener {
        void onGetTuyaTokenSuccess(BaseBean<TuyaTokenBean> baseBean);

        void onGetTuyaTokenFailure();
    }

    public interface NotifyServerListener {
        void onNotifyServerSuccess(BaseBean<TuyaTokenBean> baseBean);

        void onNotifyServerFailure();
    }
    /*------------------------------------------------smarthome module------------------------------------------*/


    /*------------------------------------------------mine module------------------------------------------*/
    public interface GetRobotListListener {
        void onGetRobotListSuccess(RobotDeviceListBean baseBean);

        void onGetRobotListFailure();
    }

    public interface ChangeRobotListener {
        void onChangeRobotSuccess(BaseBean baseBean, String device_id);

        void onChangeRobotFailure();
    }

    public interface GetFamilyMemberListener {
        void onGetFamilyMemberSuccess(ResponseBody responseBody);

        void onGetFamilyMemberFailure();
    }

    public interface AdminDelMemberListener {
        void onAdminDelMemberSuccess(BaseBean baseBean);

        void onAdminDelMemberFailure();
    }

    public interface InvitationMemberListener {
        void onInvitationMemberSuccess(BaseBean baseBean);

        void onInvitationMemberFailure();
    }

    public interface AuthMemberListener {
        void onAuthMemberSuccess(BaseBean baseBean);

        void onAuthMemberFailure();
    }

    public interface AgreeInvitationListener {
        void onAgreeInvitationSuccess(BaseBean baseBean, int roles);

        void onAgreeInvitationFailure();
    }

    public interface OnUpdateVersionListener {

        void onGetUpdateInfoSuccess(LatestVersionBean.DataBean data);

        void onGetUpdateInfoFailure();

    }
    /*------------------------------------------------mine module------------------------------------------*/


    /*------------------------------------------------getKey and register------------------------------------------*/
    public interface LoginListener {
        void onLoginSuccess(BaseBean baseBean);

        void onLoginFailure();
    }

    public interface RegisterListener {
        void onRegisterSuccess(BaseBean baseBean);

        void onRegisterFailure();
    }

    public interface GetCodeListener {
        void onGetCodeSuccess(BaseBean baseBean);

        void onGetCodeFailure();
    }

    public interface VerifyCodeListener {
        void onVerifyCodeSuccess(BaseBean baseBean);

        void onVerifyCodeFailure();
    }

    public interface OnFaceDetectionListener {
        void onFaceDetectionSuccess(BaseBean<FaceDetectionBean> baseBean);

        void onFaceDetectionFailure();
    }

    public interface OnCheckRegisterListener {
        void onCheckRegisterSuccess(BaseBean baseBean);

        void onCheckRegisterFailure();
    }

    public interface UpdatePwdListener {
        void onUpdatePwdSuccess(BaseBean baseBean);

        void onUpdatePwdFailure();
    }

    /*------------------------------------------------getKey and register------------------------------------------*/
}
